﻿using System;
using System.ComponentModel;

namespace Exif.ExifTypeDescription
{
	///<summary>
	///Провайдер для <see cref="ExifInfo"/>
	///</summary>
	internal class ExifInfoDescriptionProvider : TypeDescriptionProvider
	{
		#region Частные поля класса

		private static readonly TypeDescriptionProvider _defaultProvider =
			TypeDescriptor.GetProvider(typeof(ExifInfo));

		#endregion

		#region Конструктор

		public ExifInfoDescriptionProvider()
			: base(_defaultProvider)
		{
		}

		#endregion

		#region Перегруженные методы класса

		public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
		{
			var defaultDescriptor = base.GetTypeDescriptor(objectType, instance);

			return instance == null
				? defaultDescriptor : new ExifInfoTypeDescriptor(defaultDescriptor, instance);
		}

		#endregion
	}
}